package com.etl.sys.mapper;

import com.etl.sys.entity.SysLock;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * 锁表 Mapper 接口
 * </p>
 *
 * @author chenfenghai
 * @since 2020-11-13
 */
public interface SysLockMapper extends BaseMapper<SysLock> {

    /**
     * 保存锁信息
     *
     * @param lockUid    锁UID
     * @param lockType   锁类型
     * @param lockSecond 锁时间（秒）
     */
    void saveLock(@Param("LOCK_UID") String lockUid,
                  @Param("LOCK_TYPE") Integer lockType,
                  @Param("LOCK_SECOND") Long lockSecond);

    /**
     * 更新锁信息
     *
     * @param lockUid    锁UID
     * @param lockSecond 锁时间（秒）
     */
    void updateLock(@Param("LOCK_UID") String lockUid,
                    @Param("LOCK_SECOND") Long lockSecond);

    /**
     * 清空已过期的锁信息
     */
    void clearExpiredLock();
}
